package main

import "fmt"

// 切片定义语法
// var 变量名 [] 数据类型
// 或者
// 变量名 := make([] 数据类型, 长度)

func main() {
	// 声明一个切片
	// var numbers []int
	// 或者
	numbers := make([]int, 5)
	// 或者
	// numbers := []int{1, 2, 3, 4, 5}

	// 访问切片元素
	fmt.Println(numbers[0]) // 输出 1
	fmt.Println(numbers[1]) // 输出 2
	fmt.Println(numbers[2]) // 输出 3
	fmt.Println(numbers[3]) // 输出 4
	fmt.Println(numbers[4]) // 输出 5

	// 修改切片元素
	numbers[0] = 100
	fmt.Println(numbers[0]) // 输出 100

	// 切片长度
	fmt.Println(len(numbers)) // 输出 5

	// 追加元素到切片
	numbers = append(numbers, 6, 7, 8, 9, 10)
	fmt.Println(numbers) // 输出 [100 2 3 4 5 6 7 8 9 10]

	// 切片截取
	slice := numbers[2:5]
	fmt.Println(slice) // 输出 [3 4 5]

	// 切片遍历
	for i := 0; i < len(numbers); i++ {
		fmt.Println(numbers[i])
	}
}